package com.zhoukai.service;

import com.zhoukai.domain.Role;
import com.baomidou.mybatisplus.extension.service.IService;
import com.zhoukai.dto.RoleDto;
import com.zhoukai.vo.DataGridView;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * @Description TODO
 * @Author Mr.ZHOU
 * @Date Created in 2022/1/11 15:14
 */

public interface RoleService{
        /**
         * 角色分页查询
         */
        DataGridView listRoleForPage(RoleDto roleDto);

      /**
       * 不分页查询有效的
       */
        List<Role> listAllRoles();
        /**
         * 添加角色
         */
        int addRole(RoleDto roleDto);

        /**
         * 根据ID查询一个角色
         */
        Role getRoleById(Long roleId);

        /**
         * 修改角色
         */
        int updateRole(RoleDto roleDto);

        /**
         * 根据IDS删除角色
         */
        int deleteRoleByIds(Long[] roleIds);

        /**
         * 保存角色和菜单之间的关系* @param roleId
         * @param menuIds
         */
        void saveRoleMenu(Long roleId, Long[] menuIds);

        /**
         * 根据用户ID查询用户拥有的角色IDS
         * @param userId
         * @return
         */
        List<Role> getRoleIdsByUserId(@Param("userId")Long userId);

        /**
         * 保存角色和用户的关系
         * @param userId
         * @param roleIds
         */
        void saveRoleUser(Long userId, Long[] roleIds);

}
